package com.transaction.simulate.model.dto;

import java.math.BigDecimal;
import java.util.List;

public class TransVolStatistics {

    private String channelCode;
    private String fundCode;
    private String transactionAccountId;

    //认购
    private BigDecimal sub;
    //申购
    private BigDecimal allot;
    //赎回
    private BigDecimal redeem;
    //认购确认
    private BigDecimal subConfirm;
    //申购确认
    private BigDecimal allotConfirm;
    //赎回确认份额
    private BigDecimal redeemConfirmVol;
    //赎回确认金额
    private BigDecimal redeemConfirmAmount;
    //认购结果
    private BigDecimal subResult;
    //强制赎回份额
    private BigDecimal forceRedeemVol;
    //强制赎回金额
    private BigDecimal forceRedeemAmount;
    //清盘份额
    private BigDecimal liquidationVol;
    //清盘金额
    private BigDecimal liquidationAmount;
    //对账可用份额
    private BigDecimal availableVol;
    //对账总份额
    private BigDecimal totalVol;
    //分红金额/份额
    private BigDecimal bonus;


    //份额校验结果
    private BigDecimal volCheckResult;
    //统计维度
    private String statisticsDimensionality;
    private List<String> statisticsDimensionalityList;

    public String getChannelCode() {
        return channelCode;
    }

    public void setChannelCode(String channelCode) {
        this.channelCode = channelCode;
    }

    public String getFundCode() {
        return fundCode;
    }

    public void setFundCode(String fundCode) {
        this.fundCode = fundCode;
    }

    public String getTransactionAccountId() {
        return transactionAccountId;
    }

    public void setTransactionAccountId(String transactionAccountId) {
        this.transactionAccountId = transactionAccountId;
    }

    public BigDecimal getSub() {
        return sub == null ? new BigDecimal(0) : sub;
    }

    public void setSub(BigDecimal sub) {
        this.sub = sub;
    }

    public BigDecimal getAllot() {
        return allot == null ? new BigDecimal(0) : allot;
    }

    public void setAllot(BigDecimal allot) {
        this.allot = allot;
    }

    public BigDecimal getRedeem() {
        return redeem == null ? new BigDecimal(0) : redeem;
    }

    public void setRedeem(BigDecimal redeem) {
        this.redeem = redeem;
    }

    public BigDecimal getSubConfirm() {
        return subConfirm == null ? new BigDecimal(0) : subConfirm;
    }

    public void setSubConfirm(BigDecimal subConfirm) {
        this.subConfirm = subConfirm;
    }

    public BigDecimal getAllotConfirm() {
        return allotConfirm == null ? new BigDecimal(0) : allotConfirm;
    }

    public void setAllotConfirm(BigDecimal allotConfirm) {
        this.allotConfirm = allotConfirm;
    }

    public BigDecimal getRedeemConfirmVol() {
        return redeemConfirmVol == null ? new BigDecimal(0) : redeemConfirmVol;
    }

    public void setRedeemConfirmVol(BigDecimal redeemConfirmVol) {
        this.redeemConfirmVol = redeemConfirmVol;
    }

    public BigDecimal getRedeemConfirmAmount() {
        return redeemConfirmAmount == null ? new BigDecimal(0) : redeemConfirmAmount;
    }

    public void setRedeemConfirmAmount(BigDecimal redeemConfirmAmount) {
        this.redeemConfirmAmount = redeemConfirmAmount;
    }

    public BigDecimal getSubResult() {
        return subResult == null ? new BigDecimal(0) : subResult;
    }

    public void setSubResult(BigDecimal subResult) {
        this.subResult = subResult;
    }

    public BigDecimal getForceRedeemVol() {
        return forceRedeemVol == null ? new BigDecimal(0) : forceRedeemVol;
    }

    public void setForceRedeemVol(BigDecimal forceRedeemVol) {
        this.forceRedeemVol = forceRedeemVol;
    }

    public BigDecimal getForceRedeemAmount() {
        return forceRedeemAmount == null ? new BigDecimal(0) : forceRedeemAmount;
    }

    public void setForceRedeemAmount(BigDecimal forceRedeemAmount) {
        this.forceRedeemAmount = forceRedeemAmount;
    }

    public BigDecimal getLiquidationVol() {
        return liquidationVol == null ? new BigDecimal(0) : liquidationVol;
    }

    public void setLiquidationVol(BigDecimal liquidationVol) {
        this.liquidationVol = liquidationVol;
    }

    public BigDecimal getLiquidationAmount() {
        return liquidationAmount == null ? new BigDecimal(0) : liquidationAmount;
    }

    public void setLiquidationAmount(BigDecimal liquidationAmount) {
        this.liquidationAmount = liquidationAmount;
    }

    public BigDecimal getAvailableVol() {
        return availableVol == null ? new BigDecimal(0) : availableVol;
    }

    public void setAvailableVol(BigDecimal availableVol) {
        this.availableVol = availableVol;
    }

    public BigDecimal getTotalVol() {
        return totalVol == null ? new BigDecimal(0) : totalVol;
    }

    public void setTotalVol(BigDecimal totalVol) {
        this.totalVol = totalVol;
    }

    public BigDecimal getBonus() {
        return bonus == null ? new BigDecimal(0) : bonus;
    }

    public void setBonus(BigDecimal bonus) {
        this.bonus = bonus;
    }

    public BigDecimal getVolCheckResult() {
        return volCheckResult == null ? new BigDecimal(0) : volCheckResult;
    }

    public void setVolCheckResult(BigDecimal volCheckResult) {
        this.volCheckResult = volCheckResult;
    }

    public String getStatisticsDimensionality() {
        return statisticsDimensionality;
    }

    public void setStatisticsDimensionality(String statisticsDimensionality) {
        this.statisticsDimensionality = statisticsDimensionality;
    }

    public List<String> getStatisticsDimensionalityList() {
        return statisticsDimensionalityList;
    }

    public void setStatisticsDimensionalityList(List<String> statisticsDimensionalityList) {
        this.statisticsDimensionalityList = statisticsDimensionalityList;
    }

    @Override
    public String toString() {
        return "TransVolStatistics{" +
                "channelCode='" + channelCode + '\'' +
                ", fundCode='" + fundCode + '\'' +
                ", transactionAccountId='" + transactionAccountId + '\'' +
                ", sub=" + sub +
                ", allot=" + allot +
                ", redeem=" + redeem +
                ", subConfirm=" + subConfirm +
                ", allotConfirm=" + allotConfirm +
                ", redeemConfirmVol=" + redeemConfirmVol +
                ", redeemConfirmAmount=" + redeemConfirmAmount +
                ", subResult=" + subResult +
                ", forceRedeemVol=" + forceRedeemVol +
                ", forceRedeemAmount=" + forceRedeemAmount +
                ", liquidationVol=" + liquidationVol +
                ", liquidationAmount=" + liquidationAmount +
                ", availableVol=" + availableVol +
                ", totalVol=" + totalVol +
                ", bonus=" + bonus +
                ", volCheckResult='" + volCheckResult + '\'' +
                ", statisticsDimensionality='" + statisticsDimensionality + '\'' +
                '}';
    }
}
